
// 整数 0-max 默认100
export function IntegerOneHundred(value, max, min) {
    const saveMax = max || 100
    if (value == '') { return value }
    if (!/^[0-9]+$/.test(value)) { value = value.replace(/\D/g, '') };
    if (value > saveMax) { value = saveMax; } if (value < (min || 0)) { value = min || null }
    return value
}
// 一位小数校验
export function IntegerPoint(value, max) {
    const saveMax = max || 100.0
    // 将非数字字符替换为空格
    value = value.replace(/[^\d.]/g, '');
    // 将多余的小数点去除
    value = value.replace(/^\./g, '').replace(/\.{2,}/g, '.');
    // 将小数点后超过一位的数字截取保留一位
    value = value.replace(/(\.\d{1})\d{1,}$/g, '$1');
    // 将超出范围的数字限制在0-100之间
    if (value > saveMax) {
        value = saveMax;
    } else if (value < 0) {
        value = 0;
    }
    return value
}

// 显示并保留两位小数，max为限制字符串长度
export function keepTwoPoint(value, max, min) {
    if (value == '') { return value }
    value = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')
    return value
}
export function numberTwoPoint(value, max, min) {
    if (value == '') { return value }
    value = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')
    if (value > max) {
        value = max
    }
    if (value < (min || 0)) { value = min || null }
    return value
}
// 只能输入数字
export function onlyNumber(value) {
    value = value.replace(/\D/g, '')
    return value
}
 
export function onlyNumberLetter(value) {
    if (value == '') { return value }
    value = value.replace(/^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{1,50}$/g, '')
    return value
}

/**
 * 手机号码
 * @param {*} s
 */
export function isMobile(s) {
    return /^(13[0-9]{9})|(15[0-9]{9})|(17[0-9]{9})|(18[0-9]{9})|(19[0-9]{9})$/.test(s)
}
export function checkMobile(value) {
    if (value == '') { return value }
    if (value.length>11) { return value.toString().slice(0, 11) }
    value = value.replace(/\D/g, '')
    return value
}
/**
* 电话号码
* @param {*} s
*/
export function isPhone(s) {
    return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
/**
 * 身份证
 * @param {*} s
 */
export function isIdentityCard(s) {
    return /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/.test(s)
}